package com.lyr.mumcock;

import java.util.concurrent.locks.ReentrantLock;

public class Kitchen {
    // 属性：食物
    private int food=0;

   // private final ReentrantLock lock=new ReentrantLock();
    // 方法：做饭
    public  synchronized void docock() throws InterruptedException {

            //当food值是1的时候，说明有食物，这个时候妈妈不做饭，进行等待，等待孩子把食物吃完，food值为0时，开始做饭
            if (food==1){
                this.wait();
            }else{
                // 当food为0，开始做饭
                System.out.println(Thread.currentThread().getName()+"正在做饭。。。");
                Thread.sleep(1000);
                // 饭做好后，food+1
                food++;
                // 饭做好了，通知孩子吃饭
                System.out.println("饭做好了，快来吃吧！！"+food);
                this.notifyAll();

            }


    }

    public  synchronized void doeat() throws InterruptedException {

            // 当food为0，没有食物可吃，需要等待
            if (food==0){
                this.wait();
            }else{
                // 获取当前调用该方法的对象
                Child c=(Child) Thread.currentThread();
                System.out.println(c.getName()+"抢到饭了，正在吃饭。。。。");
                // 抢到资源的孩子吃饭结束后，food值-1
                food--;
                // 吃饭结束后，体力值+1
                c.setHp(c.getHp()+1);
                // 打印当前体力值
                System.out.println(c.getName()+"当前的体力值是："+c.getHp());
                // 打印食物信息
                System.out.println("food===="+food);
                // 唤醒线程（妈妈-做饭）
                this.notifyAll();

            }


    }
}
